package com.ruoyi.electronicFence.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.electronicFence.domain.MonitoringParameters;
import com.ruoyi.electronicFence.domain.TDeviceStatus;

/**
 * 设备状态Service接口
 *
 * @author sxygsj
 * @date 2024-05-17
 */
public interface ITDeviceStatusService
{
    /**
     * 查询设备状态
     *
     * @param id 设备状态主键
     * @return 设备状态
     */
    public TDeviceStatus selectTDeviceStatusById(Long id);

    /**
     * 查询设备状态列表
     *
     * @param tDeviceStatus 设备状态
     * @return 设备状态集合
     */
    public List<TDeviceStatus> selectTDeviceStatusList(TDeviceStatus tDeviceStatus);

    /**
     * 新增设备状态
     *
     * @param tDeviceStatus 设备状态
     * @return 结果
     */
    public AjaxResult insertTDeviceStatus(TDeviceStatus tDeviceStatus);

    /**
     * 修改设备状态
     *
     * @param tDeviceStatus 设备状态
     * @return 结果
     */
    public AjaxResult updateTDeviceStatus(TDeviceStatus tDeviceStatus);

    /**
     * 同步修改设备状态
     *
     * @param tDeviceStatus 设备状态
     * @return 结果
     */
    public int synchronousUpdate(TDeviceStatus tDeviceStatus);



    /**
     * 批量删除设备状态
     *
     * @param ids 需要删除的设备状态主键集合
     * @return 结果
     */
    public int deleteTDeviceStatusByIds(Long[] ids);


    /**
     * 删除设备状态信息
     *
     * @param id 设备状态主键
     * @return 结果
     */
    public int deleteTDeviceStatusById(Long id);
    /**
     * 批量删除设备状态
     *
     * @param ids 需要删除的设备状态主键集合
     * @return 结果
     */
    public int deleteTEquipmentMonitorDeviceByMonitorDeviceId (TDeviceStatus tDeviceStatus);



    /**
     * 查询设备状态
     *
     * @param id 设备状态主键
     * @return 设备状态
     */
    public Map<String, Object> selectSettingsList(String Type, String IP);

    public Map<String, Object> updateSettingsList(Map<String, Object> monitoringParameters);

    public boolean recordUpdateHistory(Map<String, Object> monitoringParameters);

    /**
     * 查询设备状态
     *
     * @param id 设备状态主键
     * @return 设备状态
     */
    public Map<String, Object> selectMaintenanceMode(TDeviceStatus tDeviceStatus);

    public Map<String, Object> updateMaintenanceMode(Map<String, Object> monitoringParameters);

    List<TDeviceStatus> selectTDeviceStatusHistoryList(TDeviceStatus tDeviceStatus);

    void recordMaintenanceModeUpdateHistory(Map<String, Object> monitoringParameters);
}
